﻿using System.Collections.Generic;
using Styx.WoWInternals.WoWObjects;

namespace MIBWarlock
{
    public partial class Classname
    {
        #region DebuffCC

        private static bool DebuffCC(WoWUnit target)
        {
            {
                if (!target.IsPlayer)
                {
                    return false;
                }

                return target.HasAura("Psychic Scream") ||
                       target.HasAura("Psychic Terror") ||
                       target.HasAura(30217) || //Adamantite Grenade
                       target.HasAura(89766) || //Axe Toss (Felguard/Wrathguard)
                       target.HasAura(90337) || //Bad Manner (Monkey)
                       target.HasAura(710) || //Banish
                       target.HasAura(113801) || //Bash (Force of Nature - Feral Treants)
                       target.HasAura(102795) || //Bear Hug
                       target.HasAura(76780) || //Bind Elemental
                       target.HasAura(117526) || //Binding Shot
                       target.HasAura(2094) || //Blind
                       target.HasAura(105421) || //Blinding Light
                       target.HasAura(115752) || //Blinding Light (Glyph of Blinding Light)
                       target.HasAura(123393) || //Breath of Fire (Glyph of Breath of Fire)
                       target.HasAura(126451) || //Clash
                       target.HasAura(122242) || //Clash (not sure which one is right)
                       target.HasAura(67769) || //Cobalt Frag Bomb
                       target.HasAura(118271) || //Combustion Impact
                       target.HasAura(33786) || //Cyclone
                       target.HasAura(113506) || //Cyclone (Symbiosis)
                       target.HasAura(7922) || //Charge Stun
                       target.HasAura(119392) || //Charging Ox Wave
                       target.HasAura(1833) || //Cheap Shot
                       target.HasAura(44572) || //Deep Freeze
                       target.HasAura(54786) || //Demonic Leap (Metamorphosis)
                       target.HasAura(99) || //Disorienting Roar
                       target.HasAura(605) || //Dominate Mind
                       target.HasAura(118895) || //Dragon Roar
                       target.HasAura(31661) || //Dragon's Breath
                       target.HasAura(77505) || //Earthquake
                       target.HasAura(5782) || //Fear
                       target.HasAura(118699) || //Fear
                       target.HasAura(130616) || //Fear (Glyph of Fear)
                       target.HasAura(30216) || //Fel Iron Bomb
                       target.HasAura(105593) || //Fist of Justice
                       target.HasAura(117418) || //Fists of Fury
                       target.HasAura(3355) || //Freezing Trap
                       target.HasAura(91800) || //Gnaw
                       target.HasAura(1776) || //Gouge
                       target.HasAura(853) || //Hammer of Justice
                       target.HasAura(110698) || //Hammer of Justice (Paladin)
                       target.HasAura(51514) || //Hex
                       target.HasAura(2637) || //Hibernate
                       target.HasAura(88625) || //Holy Word: Chastise
                       target.HasAura(119072) || //Holy Wrath
                       target.HasAura(5484) || //Howl of Terror
                       target.HasAura(22703) || //Infernal Awakening
                       target.HasAura(113056) || //Intimidating Roar [Cowering in fear] (Warrior)
                       target.HasAura(113004) || //Intimidating Roar [Fleeing in fear] (Warrior)
                       target.HasAura(5246) || //Intimidating Shout (aoe)
                       target.HasAura(20511) || //Intimidating Shout (targeted)
                       target.HasAura(24394) || //Intimidation
                       target.HasAura(408) || //Kidney Shot
                       target.HasAura(119381) || //Leg Sweep
                       target.HasAura(126246) || //Lullaby (Crane)
                       target.HasAura(22570) || //Maim
                       target.HasAura(115268) || //Mesmerize (Shivarra)
                       target.HasAura(5211) || //Mighty Bash
                       target.HasAura(91797) || //Monstrous Blow (Dark Transformation)
                       target.HasAura(6789) || //Mortal Coil
                       target.HasAura(115078) || //Paralysis
                       target.HasAura(113953) || //Paralysis (Paralytic Poison)
                       target.HasAura(126355) || //Paralyzing Quill (Porcupine)
                       target.HasAura(126423) || //Petrifying Gaze (Basilisk)
                       target.HasAura(118) || //Polymorph
                       target.HasAura(61305) || //Polymorph: Black Cat
                       target.HasAura(28272) || //Polymorph: Pig
                       target.HasAura(61721) || //Polymorph: Rabbit
                       target.HasAura(61780) || //Polymorph: Turkey
                       target.HasAura(28271) || //Polymorph: Turtle
                       target.HasAura(9005) || //Pounce
                       target.HasAura(102546) || //Pounce (Incarnation)
                       target.HasAura(64044) || //Psychic Horror
                       target.HasAura(8122) || //Psychic Scream
                       target.HasAura(113792) || //Psychic Terror (Psyfiend)
                       target.HasAura(118345) || //Pulverize
                       target.HasAura(107079) || //Quaking Palm
                       target.HasAura(13327) || //Reckless Charge
                       target.HasAura(115001) || //Remorseless Winter
                       target.HasAura(20066) || //Repentance
                       target.HasAura(82691) || //Ring of Frost
                       target.HasAura(6770) || //Sap
                       target.HasAura(1513) || //Scare Beast
                       target.HasAura(19503) || //Scatter Shot
                       target.HasAura(132412) || //Seduction (Grimoire of Sacrifice)
                       target.HasAura(6358) || //Seduction (Succubus)
                       target.HasAura(9484) || //Shackle Undead
                       target.HasAura(30283) || //Shadowfury
                       target.HasAura(132168) || //Shockwave
                       target.HasAura(87204) || //Sin and Punishment
                       target.HasAura(104045) || //Sleep (Metamorphosis)
                       target.HasAura(50519) || //Sonic Blast (Bat)
                       target.HasAura(118905) || //Static Charge (Capacitor Totem)
                       target.HasAura(56626) || //Sting (Wasp)
                       target.HasAura(107570) || //Storm Bolt
                       target.HasAura(10326) || //Turn Evil
                       target.HasAura(20549) || //War Stomp
                       target.HasAura(105771) || //Warbringer
                       target.HasAura(19386) || //Wyvern Sting
                       target.HasAura(108194); //Asphyxiate
            }
        }

        #endregion

        #region DebuffCCDuration

        private static bool DebuffCCDuration(WoWUnit target, double duration)
        {
            {
                if (!target.IsPlayer)
                {
                    return false;
                }

                return target.HasAura("Psychic Scream") &&
                       target.GetAuraByName("Psychic Scream").TimeLeft.TotalMilliseconds > duration || //Psychic Terror
                       target.HasAura("Psychic Terror") &&
                       target.GetAuraByName("Psychic Terror").TimeLeft.TotalMilliseconds > duration || //
                       target.HasAura(30217) && target.GetAuraById(30217).TimeLeft.TotalMilliseconds > duration ||
                    //Adamantite Grenade
                       target.HasAura(89766) && target.GetAuraById(89766).TimeLeft.TotalMilliseconds > duration ||
                    //Axe Toss (Felguard/Wrathguard)
                       target.HasAura(90337) && target.GetAuraById(90337).TimeLeft.TotalMilliseconds > duration ||
                    //Bad Manner (Monkey)
                       target.HasAura(710) && target.GetAuraById(710).TimeLeft.TotalMilliseconds > duration || //Banish
                       target.HasAura(113801) && target.GetAuraById(113801).TimeLeft.TotalMilliseconds > duration ||
                    //Bash (Force of Nature - Feral Treants)
                       target.HasAura(102795) && target.GetAuraById(102795).TimeLeft.TotalMilliseconds > duration ||
                    //Bear Hug
                       target.HasAura(76780) && target.GetAuraById(76780).TimeLeft.TotalMilliseconds > duration ||
                    //Bind Elemental
                       target.HasAura(117526) && target.GetAuraById(117526).TimeLeft.TotalMilliseconds > duration ||
                    //Binding Shot
                       target.HasAura(2094) && target.GetAuraById(2094).TimeLeft.TotalMilliseconds > duration || //Blind
                       target.HasAura(105421) && target.GetAuraById(105421).TimeLeft.TotalMilliseconds > duration ||
                    //Blinding Light
                       target.HasAura(115752) && target.GetAuraById(115752).TimeLeft.TotalMilliseconds > duration ||
                    //Blinding Light (Glyph of Blinding Light)
                       target.HasAura(123393) && target.GetAuraById(123393).TimeLeft.TotalMilliseconds > duration ||
                    //Breath of Fire (Glyph of Breath of Fire)
                       target.HasAura(126451) && target.GetAuraById(126451).TimeLeft.TotalMilliseconds > duration ||
                    //Clash
                       target.HasAura(122242) && target.GetAuraById(122242).TimeLeft.TotalMilliseconds > duration ||
                    //Clash (not sure which one is right)
                       target.HasAura(67769) && target.GetAuraById(67769).TimeLeft.TotalMilliseconds > duration ||
                    //Cobalt Frag Bomb
                       target.HasAura(118271) && target.GetAuraById(118271).TimeLeft.TotalMilliseconds > duration ||
                    //Combustion Impact
                       target.HasAura(33786) && target.GetAuraById(33786).TimeLeft.TotalMilliseconds > duration ||
                    //Cyclone
                       target.HasAura(113506) && target.GetAuraById(113506).TimeLeft.TotalMilliseconds > duration ||
                    //Cyclone (Symbiosis)
                       target.HasAura(7922) && target.GetAuraById(7922).TimeLeft.TotalMilliseconds > duration ||
                    //Charge Stun
                       target.HasAura(119392) && target.GetAuraById(119392).TimeLeft.TotalMilliseconds > duration ||
                    //Charging Ox Wave
                       target.HasAura(1833) && target.GetAuraById(1833).TimeLeft.TotalMilliseconds > duration ||
                    //Cheap Shot
                       target.HasAura(44572) && target.GetAuraById(44572).TimeLeft.TotalMilliseconds > duration ||
                    //Deep Freeze
                       target.HasAura(54786) && target.GetAuraById(54786).TimeLeft.TotalMilliseconds > duration ||
                    //Demonic Leap (Metamorphosis)
                       target.HasAura(99) && target.GetAuraById(99).TimeLeft.TotalMilliseconds > duration ||
                    //Disorienting Roar
                       target.HasAura(605) && target.GetAuraById(605).TimeLeft.TotalMilliseconds > duration ||
                    //Dominate Mind
                       target.HasAura(118895) && target.GetAuraById(118895).TimeLeft.TotalMilliseconds > duration ||
                    //Dragon Roar
                       target.HasAura(31661) && target.GetAuraById(31661).TimeLeft.TotalMilliseconds > duration ||
                    //Dragon's Breath
                       target.HasAura(77505) && target.GetAuraById(77505).TimeLeft.TotalMilliseconds > duration ||
                    //Earthquake
                       target.HasAura(5782) && target.GetAuraById(5782).TimeLeft.TotalMilliseconds > duration || //Fear
                       target.HasAura(118699) && target.GetAuraById(118699).TimeLeft.TotalMilliseconds > duration ||
                    //Fear
                       target.HasAura(130616) && target.GetAuraById(130616).TimeLeft.TotalMilliseconds > duration ||
                    //Fear (Glyph of Fear)
                       target.HasAura(30216) && target.GetAuraById(30216).TimeLeft.TotalMilliseconds > duration ||
                    //Fel Iron Bomb
                       target.HasAura(105593) && target.GetAuraById(105593).TimeLeft.TotalMilliseconds > duration ||
                    //Fist of Justice
                       target.HasAura(117418) && target.GetAuraById(117418).TimeLeft.TotalMilliseconds > duration ||
                    //Fists of Fury
                       target.HasAura(3355) && target.GetAuraById(3355).TimeLeft.TotalMilliseconds > duration ||
                    //Freezing Trap
                       target.HasAura(91800) && target.GetAuraById(91800).TimeLeft.TotalMilliseconds > duration ||
                    //Gnaw
                       target.HasAura(1776) && target.GetAuraById(1776).TimeLeft.TotalMilliseconds > duration || //Gouge
                       target.HasAura(853) && target.GetAuraById(853).TimeLeft.TotalMilliseconds > duration ||
                    //Hammer of Justice
                       target.HasAura(110698) && target.GetAuraById(110698).TimeLeft.TotalMilliseconds > duration ||
                    //Hammer of Justice (Paladin)
                       target.HasAura(51514) && target.GetAuraById(51514).TimeLeft.TotalMilliseconds > duration || //Hex
                       target.HasAura(2637) && target.GetAuraById(2637).TimeLeft.TotalMilliseconds > duration ||
                    //Hibernate
                       target.HasAura(88625) && target.GetAuraById(88625).TimeLeft.TotalMilliseconds > duration ||
                    //Holy Word: Chastise
                       target.HasAura(119072) && target.GetAuraById(119072).TimeLeft.TotalMilliseconds > duration ||
                    //Holy Wrath
                       target.HasAura(5484) && target.GetAuraById(5484).TimeLeft.TotalMilliseconds > duration ||
                    //Howl of Terror
                       target.HasAura(22703) && target.GetAuraById(22703).TimeLeft.TotalMilliseconds > duration ||
                    //Infernal Awakening
                       target.HasAura(113056) && target.GetAuraById(113056).TimeLeft.TotalMilliseconds > duration ||
                    //Intimidating Roar [Cowering in fear] (Warrior)
                       target.HasAura(113004) && target.GetAuraById(113004).TimeLeft.TotalMilliseconds > duration ||
                    //Intimidating Roar [Fleeing in fear] (Warrior)
                       target.HasAura(5246) && target.GetAuraById(5246).TimeLeft.TotalMilliseconds > duration ||
                    //Intimidating Shout (aoe)
                       target.HasAura(20511) && target.GetAuraById(20511).TimeLeft.TotalMilliseconds > duration ||
                    //Intimidating Shout (targeted)
                       target.HasAura(24394) && target.GetAuraById(24394).TimeLeft.TotalMilliseconds > duration ||
                    //Intimidation
                       target.HasAura(408) && target.GetAuraById(408).TimeLeft.TotalMilliseconds > duration ||
                    //Kidney Shot
                       target.HasAura(119381) && target.GetAuraById(119381).TimeLeft.TotalMilliseconds > duration ||
                    //Leg Sweep
                       target.HasAura(126246) && target.GetAuraById(126246).TimeLeft.TotalMilliseconds > duration ||
                    //Lullaby (Crane)
                       target.HasAura(22570) && target.GetAuraById(22570).TimeLeft.TotalMilliseconds > duration ||
                    //Maim
                       target.HasAura(115268) && target.GetAuraById(115268).TimeLeft.TotalMilliseconds > duration ||
                    //Mesmerize (Shivarra)
                       target.HasAura(5211) && target.GetAuraById(5211).TimeLeft.TotalMilliseconds > duration ||
                    //Mighty Bash
                       target.HasAura(91797) && target.GetAuraById(91797).TimeLeft.TotalMilliseconds > duration ||
                    //Monstrous Blow (Dark Transformation)
                       target.HasAura(6789) && target.GetAuraById(6789).TimeLeft.TotalMilliseconds > duration ||
                    //Mortal Coil
                       target.HasAura(115078) && target.GetAuraById(115078).TimeLeft.TotalMilliseconds > duration ||
                    //Paralysis
                       target.HasAura(113953) && target.GetAuraById(113953).TimeLeft.TotalMilliseconds > duration ||
                    //Paralysis (Paralytic Poison)
                       target.HasAura(126355) && target.GetAuraById(126355).TimeLeft.TotalMilliseconds > duration ||
                    //Paralyzing Quill (Porcupine)
                       target.HasAura(126423) && target.GetAuraById(126423).TimeLeft.TotalMilliseconds > duration ||
                    //Petrifying Gaze (Basilisk)
                       target.HasAura(118) && target.GetAuraById(118).TimeLeft.TotalMilliseconds > duration ||
                    //Polymorph
                       target.HasAura(61305) && target.GetAuraById(61305).TimeLeft.TotalMilliseconds > duration ||
                    //Polymorph: Black Cat
                       target.HasAura(28272) && target.GetAuraById(28272).TimeLeft.TotalMilliseconds > duration ||
                    //Polymorph: Pig
                       target.HasAura(61721) && target.GetAuraById(61721).TimeLeft.TotalMilliseconds > duration ||
                    //Polymorph: Rabbit
                       target.HasAura(61780) && target.GetAuraById(61780).TimeLeft.TotalMilliseconds > duration ||
                    //Polymorph: Turkey
                       target.HasAura(28271) && target.GetAuraById(28271).TimeLeft.TotalMilliseconds > duration ||
                    //Polymorph: Turtle
                       target.HasAura(9005) && target.GetAuraById(9005).TimeLeft.TotalMilliseconds > duration ||
                    //Pounce
                       target.HasAura(102546) && target.GetAuraById(102546).TimeLeft.TotalMilliseconds > duration ||
                    //Pounce (Incarnation)
                       target.HasAura(64044) && target.GetAuraById(64044).TimeLeft.TotalMilliseconds > duration ||
                    //Psychic Horror
                       target.HasAura(8122) && target.GetAuraById(8122).TimeLeft.TotalMilliseconds > duration ||
                    //Psychic Scream
                       target.HasAura(113792) && target.GetAuraById(113792).TimeLeft.TotalMilliseconds > duration ||
                    //Psychic Terror (Psyfiend)
                       target.HasAura(118345) && target.GetAuraById(118345).TimeLeft.TotalMilliseconds > duration ||
                    //Pulverize
                       target.HasAura(107079) && target.GetAuraById(107079).TimeLeft.TotalMilliseconds > duration ||
                    //Quaking Palm
                       target.HasAura(13327) && target.GetAuraById(13327).TimeLeft.TotalMilliseconds > duration ||
                    //Reckless Charge
                       target.HasAura(115001) && target.GetAuraById(115001).TimeLeft.TotalMilliseconds > duration ||
                    //Remorseless Winter
                       target.HasAura(20066) && target.GetAuraById(20066).TimeLeft.TotalMilliseconds > duration ||
                    //Repentance
                       target.HasAura(82691) && target.GetAuraById(82691).TimeLeft.TotalMilliseconds > duration ||
                    //Ring of Frost
                       target.HasAura(6770) && target.GetAuraById(6770).TimeLeft.TotalMilliseconds > duration || //Sap
                       target.HasAura(1513) && target.GetAuraById(1513).TimeLeft.TotalMilliseconds > duration ||
                    //Scare Beast
                       target.HasAura(19503) && target.GetAuraById(19503).TimeLeft.TotalMilliseconds > duration ||
                    //Scatter Shot
                       target.HasAura(132412) && target.GetAuraById(132412).TimeLeft.TotalMilliseconds > duration ||
                    //Seduction (Grimoire of Sacrifice)
                       target.HasAura(6358) && target.GetAuraById(6358).TimeLeft.TotalMilliseconds > duration ||
                    //Seduction (Succubus)
                       target.HasAura(9484) && target.GetAuraById(9484).TimeLeft.TotalMilliseconds > duration ||
                    //Shackle Undead
                       target.HasAura(30283) && target.GetAuraById(30283).TimeLeft.TotalMilliseconds > duration ||
                    //Shadowfury
                       target.HasAura(132168) && target.GetAuraById(132168).TimeLeft.TotalMilliseconds > duration ||
                    //Shockwave
                       target.HasAura(87204) && target.GetAuraById(87204).TimeLeft.TotalMilliseconds > duration ||
                    //Sin and Punishment
                       target.HasAura(104045) && target.GetAuraById(104045).TimeLeft.TotalMilliseconds > duration ||
                    //Sleep (Metamorphosis)
                       target.HasAura(50519) && target.GetAuraById(50519).TimeLeft.TotalMilliseconds > duration ||
                    //Sonic Blast (Bat)
                       target.HasAura(118905) && target.GetAuraById(118905).TimeLeft.TotalMilliseconds > duration ||
                    //Static Charge (Capacitor Totem)
                       target.HasAura(56626) && target.GetAuraById(56626).TimeLeft.TotalMilliseconds > duration ||
                    //Sting (Wasp)
                       target.HasAura(107570) && target.GetAuraById(107570).TimeLeft.TotalMilliseconds > duration ||
                    //Storm Bolt
                       target.HasAura(10326) && target.GetAuraById(10326).TimeLeft.TotalMilliseconds > duration ||
                    //Turn Evil
                       target.HasAura(20549) && target.GetAuraById(20549).TimeLeft.TotalMilliseconds > duration ||
                    //War Stomp
                       target.HasAura(105771) && target.GetAuraById(105771).TimeLeft.TotalMilliseconds > duration ||
                    //Warbringer
                       target.HasAura(19386) && target.GetAuraById(19386).TimeLeft.TotalMilliseconds > duration ||
                    //Wyvern Sting
                       target.HasAura(108194) && target.GetAuraById(108194).TimeLeft.TotalMilliseconds > duration;
            }
        }

        #endregion

        #region DebuffCCCleanseASAP

        private static bool DebuffCCCleanseASAP(WoWUnit target)
        {
            {
                if (!target.IsPlayer)
                {
                    return false;
                }

                return target.HasAura(105421) || //Blinding Light
                       target.HasAura(123393) || //Breath of Fire (Glyph of Breath of Fire)
                       target.HasAura(44572) || //Deep Freeze
                       target.HasAura(605) || //Dominate Mind
                       target.HasAura(31661) || //Dragon's Breath
                       target.HasAura(5782) || //Fear
                       target.HasAura(118699) || //Fear
                       target.HasAura(130616) || //Fear (Glyph of Fear)
                       target.HasAura(3355) || //Freezing Trap
                       target.HasAura(853) || //Hammer of Justice
                       target.HasAura(110698) || //Hammer of Justice (Paladin)
                       target.HasAura(2637) || //Hibernate
                       target.HasAura(88625) || //Holy Word: Chastise
                       target.HasAura(119072) || //Holy Wrath
                       target.HasAura(5484) || //Howl of Terror
                       target.HasAura(115268) || //Mesmerize (Shivarra)
                       target.HasAura(6789) || //Mortal Coil
                       target.HasAura(115078) || //Paralysis
                       target.HasAura(113953) || //Paralysis (Paralytic Poison)
                       target.HasAura(126355) || //Paralyzing Quill (Porcupine)
                       target.HasAura(118) || //Polymorph
                       target.HasAura(61305) || //Polymorph: Black Cat
                       target.HasAura(28272) || //Polymorph: Pig
                       target.HasAura(61721) || //Polymorph: Rabbit
                       target.HasAura(61780) || //Polymorph: Turkey
                       target.HasAura(28271) || //Polymorph: Turtle
                       target.HasAura(64044) || //Psychic Horror
                       target.HasAura(8122) || //Psychic Scream
                       target.HasAura(113792) || //Psychic Terror (Psyfiend)
                       target.HasAura(107079) || //Quaking Palm
                       target.HasAura(115001) || //Remorseless Winter
                       target.HasAura(20066) || //Repentance
                       target.HasAura(82691) || //Ring of Frost
                       target.HasAura(1513) || //Scare Beast
                       target.HasAura(132412) || //Seduction (Grimoire of Sacrifice)
                       target.HasAura(6358) || //Seduction (Succubus)
                       target.HasAura(9484) || //Shackle Undead
                       target.HasAura(30283) || //Shadowfury
                       target.HasAura(87204) || //Sin and Punishment
                       target.HasAura(104045) || //Sleep (Metamorphosis)
                       target.HasAura(118905) || //Static Charge (Capacitor Totem)
                       target.HasAura(10326) || //Turn Evil
                       target.HasAura(19386) || //Wyvern Sting
                       target.HasAura(117436) || //Lightning Prison
                       target.HasAura(124863) || //Visions of Demise
                       target.HasAura(123011) || //Terrorize (10%)
                       target.HasAura(123012) || //Terrorize (5%)
                       target.HasAura(117949); //Closed Curcuit
            }
        }

        #endregion

        #region DebuffCCBreakonDamage

        private static bool DebuffCCBreakonDamage(WoWUnit target)
        {
            if (!target.IsPlayer)
            {
                return false;
            }

            return target.HasAura(2094) || //Blind
                   target.HasAura(105421) || //Blinding Light
                   target.HasAura(99) || //Disorienting Roar
                   target.HasAura(31661) || //Dragon's Breath
                   target.HasAura(3355) || //Freezing Trap
                   target.HasAura(1776) || //Gouge
                   target.HasAura(2637) || //Hibernate
                   target.HasAura(115268) || //Mesmerize (Shivarra)
                   target.HasAura(115078) || //Paralysis
                   target.HasAura(113953) || //Paralysis (Paralytic Poison)
                   target.HasAura(126355) || //Paralyzing Quill (Porcupine)
                   target.HasAura(126423) || //Petrifying Gaze (Basilisk)
                   target.HasAura(118) || //Polymorph
                   target.HasAura(61305) || //Polymorph: Black Cat
                   target.HasAura(28272) || //Polymorph: Pig
                   target.HasAura(61721) || //Polymorph: Rabbit
                   target.HasAura(61780) || //Polymorph: Turkey
                   target.HasAura(28271) || //Polymorph: Turtle
                   target.HasAura(20066) || //Repentance
                   target.HasAura(6770) || //Sap
                   target.HasAura(19503) || //Scatter Shot
                   target.HasAura(132412) || //Seduction (Grimoire of Sacrifice)
                   target.HasAura(6358) || //Seduction (Succubus)
                   target.HasAura(104045) || //Sleep (Metamorphosis)
                   target.HasAura(19386); //Wyvern Sting
        }

        #endregion

        #region DebuffDisarm

        private static bool DebuffDisarm(WoWUnit target)
        {
            if (!target.IsPlayer)
            {
                return false;
            }

            return target.HasAura(50541) || //Clench (Scorpid)
                   target.HasAura(676) || //Disarm
                   target.HasAura(118093) || //Disarm (Voidwalker/Voidlord)
                   target.HasAura(51722) || //Dismantle
                   target.HasAura(117368) || //Grapple Weapon
                   target.HasAura(126458) || //Grapple Weapon (Monk)
                   target.HasAura(64058) || //Psychic Horror
                   target.HasAura(91644); //Snatch (Bird of Prey)
        }

        #endregion

        #region DebuffDoNotHeal

        private static bool DebuffDoNotHeal(WoWUnit target)
        {
            return target.HasAura("Dominate Mind") ||
                   target.HasAura("Cyclone");
        }

        #endregion

        #region DebuffDoNotCleanse

        private static bool DebuffDoNotCleanse(WoWUnit target)
        {
            return target.HasAura("Flame Shock") ||
                   target.HasAura("Unstable Affliction") ||
                   target.HasAura("Vampiric Touch");
        }

        #endregion

        #region DebuffDot

        private static bool DebuffDot(WoWUnit target)
        {
            if (!target.IsPlayer)
            {
                return false;
            }

            return target.HasAura(980) || //Agony
                   target.HasAura(3674) || //Black Arrow
                   target.HasAura(128531) || //Blackout Kick
                   target.HasAura(55078) || //Blood Plague
                   target.HasAura(31803) || //Censure
                   target.HasAura(83853) || //Combustion
                   target.HasAura(172) || //Corruption
                   target.HasAura(123996) || //Crackling Tiger Lightning
                   target.HasAura(122233) || //Crimson Tempest
                   target.HasAura(2818) || //Deadly Poison
                   target.HasAura(43265) || //Death and Decay
                   target.HasAura(115767) || //Deep Wounds
                   target.HasAura(2944) || //Devouring Plague
                   target.HasAura(603) || //Doom
                   target.HasAura(53301) || //Explosive Shot
                   target.HasAura(8050) || //Flame Shock
                   target.HasAura(2120) || //Flamestrike
                   target.HasAura(113092) || //Frost Bomb
                   target.HasAura(55095) || //Frost Fever
                   target.HasAura(703) || //Garrote
                   target.HasAura(14914) || //Holy Fire
                   target.HasAura(33745) || //Lacerate
                   target.HasAura(44457) || //Living Bomb
                   target.HasAura(103103) || //Malefic Grasp
                   target.HasAura(8921) || //Moonfire
                   target.HasAura(114923) || //Nether Tempest
                   target.HasAura(63468) || //Piercing Shots
                   target.HasAura(9007) || //Pounce Bleed
                   target.HasAura(11366) || //Pyroblast
                   target.HasAura(1822) || //Rake
                   target.HasAura(1079) || //Rip
                   target.HasAura(1943) || //Rupture
                   target.HasAura(118253) || //Serpent Sting
                   target.HasAura(589) || //Shadow Word: Pain
                   target.HasAura(93402) || //Sunfire
                   target.HasAura(77758) || //Thrash
                   target.HasAura(106830) || //Thrash
                   target.HasAura(31117) || //Unstable Affliction
                   target.HasAura(91075) || //Vengeful Wisp
                   target.HasAura(91076); //Vengeful Wisp
        }

        #endregion

        #region DebuffRoot

        private static bool DebuffRoot(WoWUnit target)
        {
            if (!target.IsPlayer)
            {
                return false;
            }

            return target.HasAura(96294) || //Chains of Ice (Chilblains)
                   target.HasAura(116706) || //Disable
                   target.HasAura(64695) || //Earthgrab (Earthgrab Totem)
                   target.HasAura(339) || //Entangling Roots
                   target.HasAura(113770) || //Entangling Roots (Force of Nature - Balance Treants)
                   target.HasAura(19975) || //Entangling Roots (Nature's Grasp)
                   target.HasAura(113275) || //Entangling Roots (Symbiosis)
                   target.HasAura(113275) || //Entangling Roots (Symbiosis)
                   target.HasAura(19185) || //Entrapment
                   target.HasAura(33395) || //Freeze
                   target.HasAura(63685) || //Freeze (Frozen Power)
                   target.HasAura(39965) || //Frost Grenade
                   target.HasAura(122) || //Frost Nova
                   target.HasAura(110693) || //Frost Nova (Mage)
                   target.HasAura(55536) || //Frostweave Net
                   target.HasAura(87194) || //Glyph of Mind Blast
                   target.HasAura(111340) || //Ice Ward
                   target.HasAura(45334) || //Immobilized (Wild Charge - Bear)
                   target.HasAura(90327) || //Lock Jaw (Dog)
                   target.HasAura(102359) || //Mass Entanglement
                   target.HasAura(128405) || //Narrow Escape
                   target.HasAura(13099) || //Net-o-Matic
                   target.HasAura(115197) || //Partial Paralysis
                   target.HasAura(50245) || //Pin (Crab)
                   target.HasAura(91807) || //Shambling Rush (Dark Transformation)
                   target.HasAura(123407) || //Spinning Fire Blossom
                   target.HasAura(107566) || //Staggering Shout
                   target.HasAura(54706) || //Venom Web Spray (Silithid)
                   target.HasAura(114404) || //Void Tendril's Grasp
                   target.HasAura(4167); //Web (Spider)
        }

        #endregion

        #region DebuffRootCanCleanse

        private static bool DebuffRootCanCleanse(WoWUnit target)
        {
            if (!target.IsPlayer)
            {
                return false;
            }

            return target.HasAura(96294) || //Chains of Ice (Chilblains)
                   target.HasAura(64695) || //Earthgrab (Earthgrab Totem)
                   target.HasAura(339) || //Entangling Roots
                   target.HasAura(113770) || //Entangling Roots (Force of Nature - Balance Treants)
                   target.HasAura(19975) || //Entangling Roots (Nature's Grasp)
                   target.HasAura(113275) || //Entangling Roots (Symbiosis)
                   target.HasAura(113275) || //Entangling Roots (Symbiosis)
                   target.HasAura(19185) || //Entrapment
                   target.HasAura(33395) || //Freeze
                   target.HasAura(63685) || //Freeze (Frozen Power)
                   target.HasAura(122) || //Frost Nova
                   target.HasAura(110693) || //Frost Nova (Mage)
                   target.HasAura(87194) || //Glyph of Mind Blast
                   target.HasAura(111340) || //Ice Ward
                   target.HasAura(102359) || //Mass Entanglement
                   target.HasAura(115197) || //Partial Paralysis
                   target.HasAura(91807) || //Shambling Rush (Dark Transformation)
                   target.HasAura(123407) || //Spinning Fire Blossom
                   target.HasAura(54706) || //Venom Web Spray (Silithid)
                   target.HasAura(114404) || //Void Tendril's Grasp
                   target.HasAura(4167); //Web (Spider)
        }

        #endregion

        #region DebuffRootorSnare

        private static bool DebuffRootorSnare(WoWUnit target)
        {
            return target.HasAura(96294) || //Chains of Ice (Chilblains)
                   target.HasAura(116706) || //Disable
                   target.HasAura(64695) || //Earthgrab (Earthgrab Totem)
                   target.HasAura(339) || //Entangling Roots
                   target.HasAura(113770) || //Entangling Roots (Force of Nature - Balance Treants)
                   target.HasAura(19975) || //Entangling Roots (Nature's Grasp)
                   target.HasAura(113275) || //Entangling Roots (Symbiosis)
                   target.HasAura(113275) || //Entangling Roots (Symbiosis)
                   target.HasAura(19185) || //Entrapment
                   target.HasAura(33395) || //Freeze
                   target.HasAura(63685) || //Freeze (Frozen Power)
                   target.HasAura(39965) || //Frost Grenade
                   target.HasAura(122) || //Frost Nova
                   target.HasAura(110693) || //Frost Nova (Mage)
                   target.HasAura(55536) || //Frostweave Net
                   target.HasAura(87194) || //Glyph of Mind Blast
                   target.HasAura(111340) || //Ice Ward
                   target.HasAura(45334) || //Immobilized (Wild Charge - Bear)
                   target.HasAura(90327) || //Lock Jaw (Dog)
                   target.HasAura(102359) || //Mass Entanglement
                   target.HasAura(128405) || //Narrow Escape
                   target.HasAura(13099) || //Net-o-Matic
                   target.HasAura(115197) || //Partial Paralysis
                   target.HasAura(50245) || //Pin (Crab)
                   target.HasAura(91807) || //Shambling Rush (Dark Transformation)
                   target.HasAura(123407) || //Spinning Fire Blossom
                   target.HasAura(107566) || //Staggering Shout
                   target.HasAura(54706) || //Venom Web Spray (Silithid)
                   target.HasAura(114404) || //Void Tendril's Grasp
                   target.HasAura(4167) || //Web (Spider)
                   target.HasAura(50433) || //Ankle Crack (Crocolisk)
                   target.HasAura(110300) || //Burden of Guilt
                   target.HasAura(35101) || //Concussive Barrage
                   target.HasAura(5116) || //Concussive Shot
                   target.HasAura(120) || //Cone of Cold
                   target.HasAura(3409) || //Crippling Poison
                   target.HasAura(18223) || //Curse of Exhaustion
                   target.HasAura(45524) || //Chains of Ice
                   target.HasAura(50435) || //Chilblains
                   target.HasAura(121288) || //Chilled (Frost Armor)
                   target.HasAura(1604) || //Dazed
                   target.HasAura(63529) || //Dazed - Avenger's Shield
                   target.HasAura(50259) || //Dazed (Wild Charge - Cat)
                   target.HasAura(26679) || //Deadly Throw
                   target.HasAura(119696) || //Debilitation
                   target.HasAura(116095) || //Disable
                   target.HasAura(123727) || //Dizzying Haze
                   target.HasAura(3600) || //Earthbind (Earthbind Totem)
                   target.HasAura(77478) || //Earthquake (Glyph of Unstable Earth)
                   target.HasAura(123586) || //Flying Serpent Kick
                   target.HasAura(113092) || //Frost Bomb
                   target.HasAura(54644) || //Frost Breath (Chimaera)
                   target.HasAura(8056) || //Frost Shock
                   target.HasAura(116) || //Frostbolt
                   target.HasAura(8034) || //Frostbrand Attack
                   target.HasAura(44614) || //Frostfire Bolt
                   target.HasAura(61394) || //Frozen Wake (Glyph of Freezing Trap)
                   target.HasAura(1715) || //Hamstring
                   target.HasAura(13810) || //Ice Trap
                   target.HasAura(58180) || //Infected Wounds
                   target.HasAura(118585) || //Leer of the Ox
                   target.HasAura(15407) || //Mind Flay
                   target.HasAura(12323) || //Piercing Howl
                   target.HasAura(115000) || //Remorseless Winter
                   target.HasAura(20170) || //Seal of Justice
                   target.HasAura(47960) || //Shadowflame
                   target.HasAura(31589) || //Slow
                   target.HasAura(129923) || //Sluggish (Glyph of Hindering Strikes)
                   target.HasAura(61391) || //Typhoon
                   target.HasAura(51490) || //Thunderstorm
                   target.HasAura(127797) || //Ursol's Vortex
                   target.HasAura(137637); //Warbringer
        }

        #endregion

        #region DebuffSilence

        private static bool DebuffSilence(WoWUnit target)
        {
            if (!target.IsPlayer)
            {
                return false;
            }

            return target.HasAura(129597) || //Arcane Torrent (Chi)
                   target.HasAura(25046) || //Arcane Torrent (Energy)
                   target.HasAura(80483) || //Arcane Torrent (Focus)
                   target.HasAura(28730) || //Arcane Torrent (Mana)
                   target.HasAura(69179) || //Arcane Torrent (Rage)
                   target.HasAura(50613) || //Arcane Torrent (Runic Power)
                   target.HasAura(31935) || //Avenger's Shield
                   target.HasAura(114238) || //Fae Silence (Glyph of Fae Silence)
                   target.HasAura(102051) || //Frostjaw (also a root)
                   target.HasAura(1330) || //Garrote - Silence
                   target.HasAura(115782) || //Optical Blast (Observer)
                   target.HasAura(15487) || //Silence
                   target.HasAura(18498) || //Silenced - Gag Order
                   target.HasAura(55021) || //Silenced - Improved Counterspell
                   target.HasAura(34490) || //Silencing Shot
                   target.HasAura(81261) || //Solar Beam
                   target.HasAura(113287) || //Solar Beam (Symbiosis)
                   target.HasAura(116709) || //Spear Hand Strike
                   target.HasAura(24259) || //Spell Lock (Felhunter)
                   target.HasAura(132409) || //Spell Lock (Grimoire of Sacrifice)
                   target.HasAura(47476) || //Strangulate
                   target.HasAura(31117); //Unstable Affliction
        }

        #endregion

        #region Invulnerable

        private static bool Invulnerable(WoWUnit target)
        {
            if (!target.IsPlayer)
            {
                return false;
            }

            return target.HasAura("Bladestorm") ||
                   target.HasAura("Desecrated Ground") ||
                   target.HasAura("Deterrence") ||
                   target.HasAura("Dispersion") ||
                   target.HasAura("Divine Shield") ||
                   target.HasAura("Hand of Protection") ||
                   target.HasAura("Ice Block");
        }

        #endregion

        #region InvulnerableSpell

        private static bool InvulnerableSpell(WoWUnit target)
        {
            if (!target.IsPlayer)
            {
                return false;
            }

            return target.HasAura("Anti-Magic Shell") ||
                   target.HasAura("Cloak of Shadows") ||
                   target.HasAura("Glyph of Ice Block") ||
                   target.HasAura("Grounding Totem Effect") ||
                   target.HasAura("Mass Spell Reflection") ||
                   target.HasAura("Phantasm") ||
                   target.HasAura("Spell Reflection") ||
                   target.HasAura("Zen Meditation");
        }

        #endregion

        #region InvulnerableRootandSnare

        private static bool InvulnerableRootandSnare(WoWUnit target)
        {
            if (!target.IsPlayer)
            {
                return true;
            }

            return target.HasAura("Master's Call") ||
                   target.HasAura("Bladestorm") ||
                   target.HasAura("Hand of Freedom");
        }

        #endregion

        #region InvulnerableStun

        private static bool InvulnerableStun(WoWUnit target)
        {
            return target.HasAura("Icebound Fortitude") ||
                   target.HasAura("Bladestorm");
        }

        #endregion
    }
}